﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Telerik.Web.UI;
using SMA.GENTEv1;

public partial class Protegidos_Administracao_Cadastros_acDadosGestor : System.Web.UI.Page
{
    private const int ItemsPerRequest = 10;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            OcultaCampos(true);
        }
    }

    #region Eventos
    protected void btnPesquisar_Click(object sender, EventArgs e)
    {
        Pesquisa();
        RadGrid1.DataBind();
        OcultaCampos(false);
    }
    protected void btnLimpar_Click(object sender, EventArgs e)
    {
        rcbGestor.Text = "";
        OcultaCampos(true);
    }
    protected void rcbGestor_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e)
    {
        Pessoa pessoa = new Pessoa();
        List<Pessoa> listPessoas = pessoa.SelectPessoaPesquisa(e.Text);

        int itemOffset = e.NumberOfItems;
        int endOffset = Math.Min(itemOffset + ItemsPerRequest, listPessoas.Count);
        e.EndOfItems = endOffset == listPessoas.Count;

        for (int i = itemOffset; i < endOffset; i++)
        {
            rcbGestor.Items.Add(new RadComboBoxItem(listPessoas[i].Nome, listPessoas[i].IdPessoa.ToString()));
        }

        e.Message = GetStatusMessage(endOffset, listPessoas.Count);
    }
    protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
    {
        Pesquisa();
    }
    protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        if (e.CommandName == "Select")
        {
            int idGestor = Int32.Parse(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["IdPessoa"].ToString());
            Server.Transfer("acCadDadosGestor.aspx?idGestor=" + idGestor.ToString());
        }
    }
    #endregion

    #region Metodos
    private void Pesquisa()
    {
        RadGrid1.DataSource = CarregaGestor(rcbGestor.Text);
    }
    public List<Pessoa> CarregaGestor(string nome)
    {
        Pessoa pessoa = new Pessoa();
        List<Pessoa> listPessoa = pessoa.SelectPessoaPesquisa(nome);

        return listPessoa;
    }
    private static string GetStatusMessage(int offset, int total)
    {
        if (total <= 0)
            return "No matches";

        return String.Format("Items <b>1</b>-<b>{0}</b> de <b>{1}</b>", offset, total);
    }
    protected void OcultaCampos(bool oculta)
    {
        trResultado.Visible = !oculta;
    }
    #endregion
    
}
